package com.ruoyi.web.petmall.pethome.service.impl;

import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.web.petmall.entity.PetInfoEntity;
import com.ruoyi.web.petmall.pethome.mapper.TradeMapper;
import com.ruoyi.web.petmall.pethome.service.TradeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * TradeServiceImpl类，实现了TradeService接口。
 * 处理与宠物交易相关的具体业务逻辑。
 */
@Service
public class TradeServiceImpl implements TradeService {

    /**
     * TradeMapper，用于与数据库交互以获取和处理宠物信息。
     */
    @Autowired
    private TradeMapper tradeMapper;

    /**
     * 根据条件查询宠物信息。
     *
     * @param petInfoEntity 查询条件封装的宠物信息实体。
     * @return 符合条件的宠物信息列表。
     */
    @Override
    public List<PetInfoEntity> getPetInfo(PetInfoEntity petInfoEntity) {
        // 从数据库获取宠物信息列表
        return tradeMapper.getPetInfo(petInfoEntity);
    }

    /**
     * 添加新的宠物交易信息。
     *
     * @param petInfoEntity 要添加的宠物信息实体。
     * @return 影响的行数（通常为1表示成功，0表示失败）。
     */
    @Override
    public int addTradeInfo(PetInfoEntity petInfoEntity) {
        // 获取当前登录用户的用户ID
        Long userId = SecurityUtils.getLoginUser().getUserId();
        // 设置宠物信息的用户ID
        petInfoEntity.setUserId(userId);

        // 将宠物信息添加到数据库
        return tradeMapper.addTradeInfo(petInfoEntity);
    }

    /**
     * 获取当前用户的宠物信息。
     *
     * @param petInfoEntity 查询条件封装的宠物信息实体（通常包括用户信息）。
     * @return 当前用户的宠物信息列表。
     */
    @Override
    public List<PetInfoEntity> getUserPetInfo(PetInfoEntity petInfoEntity) {
        // 获取当前登录用户的用户ID
        Long userId = SecurityUtils.getLoginUser().getUserId();
        // 设置宠物信息的用户ID
        petInfoEntity.setUserId(userId);

        // 从数据库获取当前用户的宠物信息列表
        return tradeMapper.getPetInfo(petInfoEntity);
    }
}
